+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
+Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
+ vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
+
+ * gtk/gtkclist.c (gtk_clist_class_init): added new args types
+ "hadjustment" & "vadjustment"
+ (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
+ set/get_arg functions
+ (gtk_clist_construct): don't create/adjust scrollbars.
+ (gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
+ to set h/vadjustments
+ (gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
+ to query h/vadjustments
+ (create_scrollbars): removed.
+ (create_adjustments): replacement for create_scrollbars
+ (gtk_clist_new): call gtk_clist_new_with_titles
+ (gtk_clist_new_with_titles): don't warn on titles == NULL
+ (move_horizontal): use CLAMP instead
+ (gtk_clist_set_policy): deprecated method.
+ use gtk_scrolled_window_set_policy instead.
+ (vadjustment_value_changed): use clist->vadj.
+ (adjust_scrollbars): renamed to adjust_adjustments
+ (adjust_adjustments): former adjust_scrollbars
+ (gtk_clist_destroy): unref adjustments
+ (gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
+ (gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
+ (gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
+ (gtk_clist_thaw) (real_insert_row) (real_remove_row)
+ (gtk_clist_set_row_height) (real_resize_column):
+ call adjust_adjustments
+ (gtk_clist_moveto): return if clist has no adjustments yet.
+ (gtk_clist_parent_set): new GtkWidget::parent_set function.
+ Autogenerate h/vadjustments if needed.
+ (move_horizontal) (move_vertical): some cleanups
+
+ * gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
+ call only gtk_viewport_set_h/vadjustment and let these functions
+ do the work.
+ (gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
+ generate a new adjustment if needed
+
+ * gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
+ use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
+
+ * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
+ queue_resize if visibility of scrollbars changes
+ (gtk_scrolled_window_remove): only call container_remove with
+ scrolled_window->viewport automatically if viewport was autogenerated
+ (gtk_scrolled_window_add): add widget as scrolled_window->viewport.
+ auto create a viewport only if widget does not take h/vadjustments.
+ (gtk_scrolled_window_construct): don't generate a viewport
+ automatically.
+ (gtk_scrolled_window_forall): call callback with viewport in any case
+ (gtk_scrolled_window_set_arg): call gtk_container_add in case of
+ ARG_VIEWPORT
+ (gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
+ (gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
+ viewport != NULL
+
+ * gtk/testgtk.c
+ (create_ctree) (export_ctree) (create_clist): use a scrolled_window
+ in conjunction with clists/ctrees
+
+ * gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
+ in conjunction with clists
+
+ * gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
+ in conjunction with clists
+
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment
SYNC_INSERT
};
+enum {
+ ARG_0,
+ ARG_HADJUSTMENT,
+ ARG_VADJUSTMENT
+};
+
static void sync_selection (GtkCList * clist,
gint row,
gint mode);
GtkDirectionType direction);
static void gtk_clist_style_set (GtkWidget *widget,
GtkStyle *previous_style);
+static void gtk_clist_parent_set (GtkWidget *widget,
+ GtkWidget *previous_parent);
/* GtkContainer Methods */
static void gtk_clist_set_focus_child (GtkContainer *container,
gpointer data);
/* Scrollbars */
-static void create_scrollbars (GtkCList *clist);
-static void adjust_scrollbars (GtkCList *clist);
+static void adjust_adjustments (GtkCList *clist);
static void check_exposures (GtkCList *clist);
static void vadjustment_changed (GtkAdjustment *adjustment,
gpointer data);
/* Misc */
static gboolean title_focus (GtkCList *clist,
gint dir);
+static void gtk_clist_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
+static void gtk_clist_get_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id);
+
static GtkContainerClass *parent_class = NULL;
static guint clist_signals[LAST_SIGNAL] = {0};
parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
+ gtk_object_add_arg_type ("GtkCList::hadjustment",
+ GTK_TYPE_ADJUSTMENT,
+ GTK_ARG_READWRITE,
+ ARG_HADJUSTMENT);
+ gtk_object_add_arg_type ("GtkCList::vadjustment",
+ GTK_TYPE_ADJUSTMENT,
+ GTK_ARG_READWRITE,
+ ARG_VADJUSTMENT);
+
clist_signals[SELECT_ROW] =
gtk_signal_new ("select_row",
GTK_RUN_FIRST,
gtk_object_class_add_signals (object_class, clist_signals, LAST_SIGNAL);
+ object_class->set_arg = gtk_clist_set_arg;
+ object_class->get_arg = gtk_clist_get_arg;
object_class->destroy = gtk_clist_destroy;
object_class->finalize = gtk_clist_finalize;
widget_class->focus_out_event = gtk_clist_focus_out;
widget_class->draw_focus = gtk_clist_draw_focus;
widget_class->style_set = gtk_clist_style_set;
+ widget_class->parent_set = gtk_clist_parent_set;
/* container_class->add = NULL; use the default GtkContainerClass warning */
/* container_class->remove=NULL; use the default GtkContainerClass warning */
GTK_TYPE_ENUM, GTK_SCROLL_JUMP,
GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE);
-
gtk_binding_entry_add_signal (binding_set, GDK_Left, 0,
"scroll_horizontal", 2,
GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,
GTK_TYPE_ENUM, GTK_SCROLL_JUMP,
GTK_TYPE_FLOAT, 1.0);
-
gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0,
"undo_selection", 0);
gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0,
*/
}
+static void
+gtk_clist_set_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id)
+{
+ GtkCList *clist;
+ GtkAdjustment *adjustment;
+
+ clist = GTK_CLIST (object);
+
+ switch (arg_id)
+ {
+ case ARG_HADJUSTMENT:
+ adjustment = GTK_VALUE_POINTER (*arg);
+ gtk_clist_set_hadjustment (clist, adjustment);
+ break;
+ case ARG_VADJUSTMENT:
+ adjustment = GTK_VALUE_POINTER (*arg);
+ gtk_clist_set_vadjustment (clist, adjustment);
+ break;
+ default:
+ break;
+ }
+}
+
+static void
+gtk_clist_get_arg (GtkObject *object,
+ GtkArg *arg,
+ guint arg_id)
+{
+ GtkCList *clist;
+
+ clist = GTK_CLIST (object);
+
+ switch (arg_id)
+ {
+ case ARG_HADJUSTMENT:
+ GTK_VALUE_POINTER (*arg) = clist->hadjustment;
+ break;
+ case ARG_VADJUSTMENT:
+ GTK_VALUE_POINTER (*arg) = clist->vadjustment;
+ break;
+ default:
+ arg->type = GTK_TYPE_INVALID;
+ break;
+ }
+}
+
static void
gtk_clist_init (GtkCList *clist)
{
clist->voffset = 0;
clist->shadow_type = GTK_SHADOW_IN;
- clist->hscrollbar_policy = GTK_POLICY_ALWAYS;
- clist->vscrollbar_policy = GTK_POLICY_ALWAYS;
+ clist->vadjustment = NULL;
+ clist->hadjustment = NULL;
clist->cursor_drag = NULL;
clist->xor_gc = NULL;
* isn't there*/
column_button_create (clist, 0);
- /* create scrollbars */
- create_scrollbars (clist);
-
if (titles)
{
GTK_CLIST_SET_FLAG (clist, CLIST_SHOW_TITLES);
/* GTKCLIST PUBLIC INTERFACE
* gtk_clist_new
* gtk_clist_new_with_titles
+ * gtk_clist_set_hadjustment
+ * gtk_clist_set_vadjustment
+ * gtk_clist_get_hadjustment
+ * gtk_clist_get_vadjustment
* gtk_clist_set_shadow_type
* gtk_clist_set_border *** deprecated function ***
* gtk_clist_set_selection_mode
GtkWidget *
gtk_clist_new (gint columns)
{
- GtkCList *clist;
-
- if (columns < 1)
- return NULL;
-
- clist = gtk_type_new (GTK_TYPE_CLIST);
- gtk_clist_construct (clist, columns, NULL);
- return GTK_WIDGET (clist);
+ return gtk_clist_new_with_titles (columns, NULL);
}
GtkWidget *
{
GtkWidget *widget;
- g_return_val_if_fail (titles != NULL, NULL);
-
widget = gtk_type_new (GTK_TYPE_CLIST);
-
gtk_clist_construct (GTK_CLIST (widget), columns, titles);
-
return widget;
}
+void
+gtk_clist_set_hadjustment (GtkCList *clist,
+ GtkAdjustment *adjustment)
+{
+ g_return_if_fail (clist != NULL);
+ g_return_if_fail (GTK_IS_CLIST (clist));
+ if (adjustment)
+ g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+
+ if (clist->hadjustment && (clist->hadjustment != adjustment))
+ {
+ gtk_signal_disconnect_by_data (GTK_OBJECT (clist->hadjustment), clist);
+ gtk_object_unref (GTK_OBJECT (clist->hadjustment));
+ }
+
+ if (!adjustment)
+ adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0));
+
+ if (clist->hadjustment != adjustment)
+ {
+ clist->hadjustment = adjustment;
+ gtk_object_ref (GTK_OBJECT (clist->hadjustment));
+ gtk_object_sink (GTK_OBJECT (clist->hadjustment));
+
+ gtk_signal_connect (GTK_OBJECT (clist->hadjustment), "changed",
+ (GtkSignalFunc) hadjustment_changed,
+ (gpointer) clist);
+ gtk_signal_connect (GTK_OBJECT (clist->hadjustment), "value_changed",
+ (GtkSignalFunc) hadjustment_value_changed,
+ (gpointer) clist);
+ }
+}
+
+GtkAdjustment *
+gtk_clist_get_hadjustment (GtkCList *clist)
+{
+ g_return_val_if_fail (clist != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+
+ return clist->hadjustment;
+}
+
+void
+gtk_clist_set_vadjustment (GtkCList *clist,
+ GtkAdjustment *adjustment)
+{
+ g_return_if_fail (clist != NULL);
+ g_return_if_fail (GTK_IS_CLIST (clist));
+ if (adjustment)
+ g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+
+ if (clist->vadjustment && (clist->vadjustment != adjustment))
+ {
+ gtk_signal_disconnect_by_data (GTK_OBJECT (clist->vadjustment), clist);
+ gtk_object_unref (GTK_OBJECT (clist->vadjustment));
+ }
+
+ if (!adjustment)
+ adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0));
+
+ if (clist->vadjustment != adjustment)
+ {
+ clist->vadjustment = adjustment;
+ gtk_object_ref (GTK_OBJECT (clist->vadjustment));
+ gtk_object_sink (GTK_OBJECT (clist->vadjustment));
+
+ gtk_signal_connect (GTK_OBJECT (clist->vadjustment), "changed",
+ (GtkSignalFunc) vadjustment_changed,
+ (gpointer) clist);
+ gtk_signal_connect (GTK_OBJECT (clist->vadjustment), "value_changed",
+ (GtkSignalFunc) vadjustment_value_changed,
+ (gpointer) clist);
+ }
+}
+
+GtkAdjustment *
+gtk_clist_get_vadjustment (GtkCList *clist)
+{
+ g_return_val_if_fail (clist != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);
+
+ return clist->vadjustment;
+}
+
void
gtk_clist_set_shadow_type (GtkCList *clist,
GtkShadowType type)
{
g_return_if_fail (clist != NULL);
g_return_if_fail (GTK_IS_CLIST (clist));
-
- if (clist->vscrollbar_policy != vscrollbar_policy)
- {
- clist->vscrollbar_policy = vscrollbar_policy;
-
- if (GTK_WIDGET (clist)->parent)
- gtk_widget_queue_resize (GTK_WIDGET (clist));
- }
-
- if (clist->hscrollbar_policy != hscrollbar_policy)
- {
- clist->hscrollbar_policy = hscrollbar_policy;
-
- if (GTK_WIDGET (clist)->parent)
- gtk_widget_queue_resize (GTK_WIDGET (clist));
- }
}
void
GTK_CLIST_UNSET_FLAG (clist, CLIST_FROZEN);
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
draw_rows (clist, NULL);
}
if (!GTK_CLIST_FROZEN (clist))
{
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
draw_rows (clist, NULL);
}
}
if (!GTK_CLIST_FROZEN (clist))
{
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
draw_rows (clist, NULL);
}
}
return;
if (column < -1 || column >= clist->columns)
return;
+ if (!clist->hadjustment || !clist->vadjustment)
+ return;
row_align = CLAMP (row_align, 0, 1);
col_align = CLAMP (col_align, 0, 1);
/* adjust horizontal scrollbar */
if (column >= 0)
{
- GtkAdjustment *adj;
gint x;
- adj = GTK_RANGE (clist->hscrollbar)->adjustment;
-
x = (COLUMN_LEFT (clist, column) - CELL_SPACING - COLUMN_INSET -
(col_align * (clist->clist_window_width - 2 * COLUMN_INSET -
CELL_SPACING - clist->column[column].area.width)));
if (x < 0)
- gtk_adjustment_set_value (adj, 0.0);
+ gtk_adjustment_set_value (clist->hadjustment, 0.0);
else if (x > LIST_WIDTH (clist) - clist->clist_window_width)
gtk_adjustment_set_value
- (adj, LIST_WIDTH (clist) - clist->clist_window_width);
+ (clist->hadjustment, LIST_WIDTH (clist) - clist->clist_window_width);
else
- gtk_adjustment_set_value (adj, x);
+ gtk_adjustment_set_value (clist->hadjustment, x);
}
/* adjust vertical scrollbar */
/* redraw the list if it isn't frozen */
if (!GTK_CLIST_FROZEN (clist))
{
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
if (gtk_clist_row_is_visible (clist, row) != GTK_VISIBILITY_NONE)
draw_rows (clist, NULL);
/* redraw the row if it isn't frozen */
if (!GTK_CLIST_FROZEN (clist))
{
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
if (was_visible)
draw_rows (clist, NULL);
gtk_clist_set_column_width (clist, i, 0);
/* zero-out the scrollbars */
- if (clist->vscrollbar)
+ if (clist->vadjustment)
{
- GTK_RANGE (clist->vscrollbar)->adjustment->value = 0.0;
- gtk_signal_emit_by_name
- (GTK_OBJECT (GTK_RANGE (clist->vscrollbar)->adjustment), "changed");
+ gtk_adjustment_set_value (clist->vadjustment, 0.0);
if (!GTK_CLIST_FROZEN (clist))
gtk_clist_thaw (clist);
}
* to zero.
*/
- /* destroy the scrollbars */
- if (clist->vscrollbar)
+ /* unref adjustments */
+ if (clist->hadjustment)
{
- gtk_widget_unparent (clist->vscrollbar);
- clist->vscrollbar = NULL;
+ gtk_object_unref (GTK_OBJECT (clist->hadjustment));
+ clist->hadjustment = NULL;
}
- if (clist->hscrollbar)
+ if (clist->vadjustment)
{
- gtk_widget_unparent (clist->hscrollbar);
- clist->hscrollbar = NULL;
+ gtk_object_unref (GTK_OBJECT (clist->vadjustment));
+ clist->vadjustment = NULL;
}
if (clist->htimer)
* gtk_clist_draw
* gtk_clist_expose
* gtk_clist_style_set
+ * gtk_clist_parent_set
* gtk_clist_key_press
* gtk_clist_button_press
* gtk_clist_button_release
if (clist->column[i].window && clist->column[i].button)
gdk_window_show (clist->column[i].window);
- /* map vscrollbars */
- if (GTK_WIDGET_VISIBLE (clist->vscrollbar) &&
- !GTK_WIDGET_MAPPED (clist->vscrollbar))
- gtk_widget_map (clist->vscrollbar);
-
- if (GTK_WIDGET_VISIBLE (clist->hscrollbar) &&
- !GTK_WIDGET_MAPPED (clist->hscrollbar))
- gtk_widget_map (clist->hscrollbar);
-
/* unfreeze the list */
GTK_CLIST_UNSET_FLAG (clist, CLIST_FROZEN);
}
gdk_window_hide (clist->title_window);
gdk_window_hide (widget->window);
- /* unmap scrollbars */
- if (GTK_WIDGET_MAPPED (clist->vscrollbar))
- gtk_widget_unmap (clist->vscrollbar);
-
- if (GTK_WIDGET_MAPPED (clist->hscrollbar))
- gtk_widget_unmap (clist->hscrollbar);
-
/* unmap column buttons */
for (i = 0; i < clist->columns; i++)
if (clist->column[i].button &&
}
}
+static void
+gtk_clist_parent_set (GtkWidget *widget,
+ GtkWidget *previous_parent)
+{
+ GtkCList *clist;
+
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+
+ clist = GTK_CLIST (widget);
+
+ /* create adjustments */
+ if (!clist->hadjustment)
+ gtk_clist_set_hadjustment (clist, NULL);
+ if (!clist->vadjustment)
+ gtk_clist_set_vadjustment (clist, NULL);
+}
+
static gint
gtk_clist_key_press (GtkWidget *widget,
GdkEventKey *event)
gint row,
gfloat align)
{
- gint y;
- GtkAdjustment *adj;
+ gfloat value;
- adj = GTK_RANGE (clist->vscrollbar)->adjustment;
+ value = (ROW_TOP_YPIXEL (clist, row) - clist->voffset -
+ align * (clist->clist_window_height - clist->row_height) +
+ (2 * align - 1) * CELL_SPACING);
- y = ROW_TOP_YPIXEL (clist, row) - clist->voffset;
-
- y = y - align * (clist->clist_window_height - clist->row_height)
- + (2 * align - 1) * CELL_SPACING;
-
- if (y + adj->page_size > adj->upper)
- adj->value = adj->upper - adj->page_size;
- else
- adj->value = y;
+ if (value + clist->vadjustment->page_size > clist->vadjustment->upper)
+ value = clist->vadjustment->upper - clist->vadjustment->page_size;
- gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
+ gtk_adjustment_set_value(clist->vadjustment, value);
}
static void
move_horizontal (GtkCList *clist,
gint diff)
{
- gfloat upper;
- GtkAdjustment *adj;
-
- adj = GTK_RANGE (clist->hscrollbar)->adjustment;
+ gfloat value;
- adj->value += diff;
-
- upper = adj->upper - adj->page_size;
- adj->value = MIN (adj->value, upper);
- adj->value = MAX (adj->value, 0.0);
-
- gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
+ value = CLAMP (clist->hadjustment->value + diff, 0.0,
+ clist->hadjustment->upper - clist->hadjustment->page_size);
+ gtk_adjustment_set_value(clist->hadjustment, value);
}
static gint
clist->htimer = gtk_timeout_add
(SCROLL_TIME, (GtkFunction) horizontal_timeout, clist);
- if (!((x < 0 && GTK_RANGE (clist->hscrollbar)->adjustment->value == 0) ||
+ if (!((x < 0 && clist->hadjustment->value == 0) ||
(x >= clist->clist_window_width &&
- GTK_RANGE (clist->hscrollbar)->adjustment->value ==
+ clist->hadjustment->value ==
LIST_WIDTH (clist) - clist->clist_window_width)))
{
if (x < 0)
MAX (clist->column_title_area.height,
clist->column[i].button->requisition.height);
}
- requisition->height += clist->column_title_area.height;
-
- /* add the vscrollbar space */
- if ((clist->vscrollbar_policy == GTK_POLICY_AUTOMATIC) ||
- GTK_WIDGET_VISIBLE (clist->vscrollbar))
- {
- gtk_widget_size_request (clist->vscrollbar,
- &clist->vscrollbar->requisition);
-
- requisition->width += (clist->vscrollbar->requisition.width +
- SCROLLBAR_SPACING (clist));
- requisition->height = MAX (requisition->height,
- clist->vscrollbar->requisition.height);
- }
-
- /* add the hscrollbar space */
- if ((clist->hscrollbar_policy == GTK_POLICY_AUTOMATIC) ||
- GTK_WIDGET_VISIBLE (clist->hscrollbar))
- {
- gtk_widget_size_request (clist->hscrollbar,
- &clist->hscrollbar->requisition);
-
- requisition->height += (clist->hscrollbar->requisition.height +
- SCROLLBAR_SPACING (clist));
- requisition->width = MAX (clist->hscrollbar->requisition.width,
- requisition->width -
- clist->vscrollbar->requisition.width);
-
- }
requisition->width += (widget->style->klass->xthickness +
GTK_CONTAINER (widget)->border_width) * 2;
- requisition->height += (widget->style->klass->ythickness +
- GTK_CONTAINER (widget)->border_width) * 2;
+ requisition->height += (clist->column_title_area.height +
+ (widget->style->klass->ythickness +
+ GTK_CONTAINER (widget)->border_width) * 2);
}
static void
{
GtkCList *clist;
GtkAllocation clist_allocation;
- GtkAllocation child_allocation;
- gint i, vscrollbar_vis, hscrollbar_vis;
gint border_width;
g_return_if_fail (widget != NULL);
(2 * widget->style->klass->ythickness) -
clist->column_title_area.height);
- /*
- * here's where we decide to show/not show the scrollbars
- */
- vscrollbar_vis = 0;
- hscrollbar_vis = 0;
-
- for (i = 0; i <= 1; i++)
- {
- if (LIST_HEIGHT (clist) <= clist_allocation.height &&
- clist->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
- {
- vscrollbar_vis = 0;
- }
- else if (!vscrollbar_vis)
- {
- vscrollbar_vis = 1;
- clist_allocation.width = MAX (1, clist_allocation.width -
- (clist->vscrollbar->requisition.width +
- SCROLLBAR_SPACING (clist)));
- }
-
- if (LIST_WIDTH (clist) <= clist_allocation.width &&
- clist->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
- {
- hscrollbar_vis = 0;
- }
- else if (!hscrollbar_vis)
- {
- hscrollbar_vis = 1;
- clist_allocation.height = MAX (1, clist_allocation.height -
- (clist->hscrollbar->requisition.height
- + SCROLLBAR_SPACING (clist)));
- }
- }
-
clist->clist_window_width = clist_allocation.width;
clist->clist_window_height = clist_allocation.height;
size_allocate_columns (clist);
size_allocate_title_buttons (clist);
- adjust_scrollbars (clist);
-
- /* allocate the vscrollbar */
- if (vscrollbar_vis)
- {
- if (!GTK_WIDGET_VISIBLE (clist->vscrollbar))
- gtk_widget_show (clist->vscrollbar);
-
- child_allocation.x = (clist->internal_allocation.x +
- clist->internal_allocation.width -
- clist->vscrollbar->requisition.width);
- child_allocation.y = clist->internal_allocation.y;
- child_allocation.width = clist->vscrollbar->requisition.width;
- child_allocation.height = MAX (1, clist->internal_allocation.height -
- (hscrollbar_vis ?
- (clist->hscrollbar->requisition.height +
- SCROLLBAR_SPACING (clist)) : 0));
- gtk_widget_size_allocate (clist->vscrollbar, &child_allocation);
- }
- else
- {
- if (GTK_WIDGET_VISIBLE (clist->vscrollbar))
- gtk_widget_hide (clist->vscrollbar);
- }
-
- if (hscrollbar_vis)
- {
- if (!GTK_WIDGET_VISIBLE (clist->hscrollbar))
- gtk_widget_show (clist->hscrollbar);
-
- child_allocation.x = clist->internal_allocation.x;
- child_allocation.y = (clist->internal_allocation.y +
- clist->internal_allocation.height -
- clist->hscrollbar->requisition.height);
- child_allocation.width = MAX (1, clist->internal_allocation.width -
- (vscrollbar_vis ?
- (clist->vscrollbar->requisition.width +
- SCROLLBAR_SPACING (clist)) : 0));
- child_allocation.height = clist->hscrollbar->requisition.height;
-
- gtk_widget_size_allocate (clist->hscrollbar, &child_allocation);
- }
- else
- {
- if (GTK_WIDGET_VISIBLE (clist->hscrollbar))
- gtk_widget_hide (clist->hscrollbar);
- }
-
- /* set the vscrollbar adjustments */
- adjust_scrollbars (clist);
+ adjust_adjustments (clist);
}
/* GTKCONTAINER
gpointer callback_data)
{
GtkCList *clist;
+ guint i;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CLIST (container));
g_return_if_fail (callback != NULL);
+ if (!include_internals)
+ return;
+
clist = GTK_CLIST (container);
- if (include_internals)
- {
- guint i;
-
- /* callback for the column buttons */
- for (i = 0; i < clist->columns; i++)
- if (clist->column[i].button)
- (*callback) (clist->column[i].button, callback_data);
-
- /* callbacks for the scrollbars */
- if (clist->vscrollbar)
- (*callback) (clist->vscrollbar, callback_data);
- if (clist->hscrollbar)
- (*callback) (clist->hscrollbar, callback_data);
- }
+ /* callback for the column buttons */
+ for (i = 0; i < clist->columns; i++)
+ if (clist->column[i].button)
+ (*callback) (clist->column[i].button, callback_data);
}
/* PRIVATE DRAWING FUNCTIONS
* SCROLLBARS
*
* functions:
- * create_scrollbars
- * adjust_scrollbars
+ * adjust_adjustments
* vadjustment_changed
* hadjustment_changed
* vadjustment_value_changed
* check_exposures
*/
static void
-create_scrollbars (GtkCList *clist)
-{
- GtkAdjustment *adjustment;
-
- clist->vscrollbar = gtk_vscrollbar_new (NULL);
-
- adjustment = gtk_range_get_adjustment (GTK_RANGE (clist->vscrollbar));
-
- gtk_signal_connect (GTK_OBJECT (adjustment), "changed",
- (GtkSignalFunc) vadjustment_changed,
- (gpointer) clist);
-
- gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
- (GtkSignalFunc) vadjustment_value_changed,
- (gpointer) clist);
-
- gtk_widget_set_parent (clist->vscrollbar, GTK_WIDGET (clist));
- gtk_widget_show (clist->vscrollbar);
-
- clist->hscrollbar = gtk_hscrollbar_new (NULL);
-
- adjustment = gtk_range_get_adjustment (GTK_RANGE (clist->hscrollbar));
-
- gtk_signal_connect (GTK_OBJECT (adjustment), "changed",
- (GtkSignalFunc) hadjustment_changed,
- (gpointer) clist);
-
- gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
- (GtkSignalFunc) hadjustment_value_changed,
- (gpointer) clist);
-
- gtk_widget_set_parent (clist->hscrollbar, GTK_WIDGET (clist));
- gtk_widget_show (clist->hscrollbar);
-}
-
-static void
-adjust_scrollbars (GtkCList * clist)
+adjust_adjustments (GtkCList * clist)
{
- GtkRange *vscrollbar;
- GtkRange *hscrollbar;
+ if (!clist->hadjustment || !clist->vadjustment)
+ return;
- vscrollbar = GTK_RANGE (clist->vscrollbar);
- vscrollbar->adjustment->page_size = clist->clist_window_height;
- vscrollbar->adjustment->page_increment = clist->clist_window_height / 2;
- vscrollbar->adjustment->step_increment = 10;
- vscrollbar->adjustment->lower = 0;
- vscrollbar->adjustment->upper = LIST_HEIGHT (clist);
+ clist->vadjustment->page_size = clist->clist_window_height;
+ clist->vadjustment->page_increment = clist->clist_window_height / 2;
+ clist->vadjustment->step_increment = 10;
+ clist->vadjustment->lower = 0;
+ clist->vadjustment->upper = LIST_HEIGHT (clist);
if (clist->clist_window_height - clist->voffset > LIST_HEIGHT (clist))
{
- vscrollbar->adjustment->value = MAX (0, LIST_HEIGHT (clist) -
- clist->clist_window_height);
- gtk_signal_emit_by_name (GTK_OBJECT (vscrollbar->adjustment),
+ clist->vadjustment->value = MAX (0, (LIST_HEIGHT (clist) -
+ clist->clist_window_height));
+ gtk_signal_emit_by_name (GTK_OBJECT (clist->vadjustment),
"value_changed");
}
- hscrollbar = GTK_RANGE (clist->hscrollbar);
- hscrollbar->adjustment->page_size = clist->clist_window_width;
- hscrollbar->adjustment->page_increment = clist->clist_window_width / 2;
- hscrollbar->adjustment->step_increment = 10;
- hscrollbar->adjustment->lower = 0;
- hscrollbar->adjustment->upper = LIST_WIDTH (clist);
+ clist->hadjustment->page_size = clist->clist_window_width;
+ clist->hadjustment->page_increment = clist->clist_window_width / 2;
+ clist->hadjustment->step_increment = 10;
+ clist->hadjustment->lower = 0;
+ clist->hadjustment->upper = LIST_WIDTH (clist);
if (clist->clist_window_width - clist->hoffset > LIST_WIDTH (clist))
{
- hscrollbar->adjustment->value = MAX (0, LIST_WIDTH (clist) -
- clist->clist_window_width);
- gtk_signal_emit_by_name (GTK_OBJECT (hscrollbar->adjustment),
+ clist->hadjustment->value = MAX (0, (LIST_WIDTH (clist) -
+ clist->clist_window_width));
+ gtk_signal_emit_by_name (GTK_OBJECT (clist->hadjustment),
"value_changed");
}
- if (LIST_HEIGHT (clist) <= clist->clist_window_height &&
- clist->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
- {
- if (GTK_WIDGET_VISIBLE (clist->vscrollbar))
- {
- gtk_widget_hide (clist->vscrollbar);
- gtk_widget_size_allocate (GTK_WIDGET (clist),
- >K_WIDGET (clist)->allocation);
- }
- }
- else
- {
- if (!GTK_WIDGET_VISIBLE (clist->vscrollbar))
- {
- gtk_widget_show (clist->vscrollbar);
- gtk_widget_size_allocate (GTK_WIDGET (clist),
- >K_WIDGET (clist)->allocation);
- }
- }
-
- if (LIST_WIDTH (clist) <= clist->clist_window_width &&
- clist->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
- {
- if (GTK_WIDGET_VISIBLE (clist->hscrollbar))
- {
- gtk_widget_hide (clist->hscrollbar);
- gtk_widget_size_allocate (GTK_WIDGET (clist),
- >K_WIDGET (clist)->allocation);
- }
- }
- else
- {
- if (!GTK_WIDGET_VISIBLE (clist->hscrollbar))
- {
- gtk_widget_show (clist->hscrollbar);
- gtk_widget_size_allocate (GTK_WIDGET (clist),
- >K_WIDGET (clist)->allocation);
- }
- }
-
- gtk_signal_emit_by_name (GTK_OBJECT (vscrollbar->adjustment), "changed");
- gtk_signal_emit_by_name (GTK_OBJECT (hscrollbar->adjustment), "changed");
+ gtk_signal_emit_by_name (GTK_OBJECT (clist->vadjustment), "changed");
+ gtk_signal_emit_by_name (GTK_OBJECT (clist->hadjustment), "changed");
}
static void
clist = GTK_CLIST (data);
- if (!GTK_WIDGET_DRAWABLE (clist))
+ if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->vadjustment)
return;
value = adjustment->value;
- if (adjustment == gtk_range_get_adjustment (GTK_RANGE (clist->vscrollbar)))
+ if (value > -clist->voffset)
{
- if (value > -clist->voffset)
- {
- /* scroll down */
- diff = value + clist->voffset;
-
- /* we have to re-draw the whole screen here... */
- if (diff >= clist->clist_window_height)
- {
- clist->voffset = -value;
- draw_rows (clist, NULL);
- return;
- }
+ /* scroll down */
+ diff = value + clist->voffset;
- if ((diff != 0) && (diff != clist->clist_window_height))
- gdk_window_copy_area (clist->clist_window,
- clist->fg_gc,
- 0, 0,
- clist->clist_window,
- 0,
- diff,
- clist->clist_window_width,
- clist->clist_window_height - diff);
-
- area.x = 0;
- area.y = clist->clist_window_height - diff;
- area.width = clist->clist_window_width;
- area.height = diff;
- }
- else
+ /* we have to re-draw the whole screen here... */
+ if (diff >= clist->clist_window_height)
{
- /* scroll up */
- diff = -clist->voffset - value;
+ clist->voffset = -value;
+ draw_rows (clist, NULL);
+ return;
+ }
- /* we have to re-draw the whole screen here... */
- if (diff >= clist->clist_window_height)
- {
- clist->voffset = -value;
- draw_rows (clist, NULL);
- return;
- }
+ if ((diff != 0) && (diff != clist->clist_window_height))
+ gdk_window_copy_area (clist->clist_window, clist->fg_gc,
+ 0, 0, clist->clist_window, 0, diff,
+ clist->clist_window_width,
+ clist->clist_window_height - diff);
- if ((diff != 0) && (diff != clist->clist_window_height))
- gdk_window_copy_area (clist->clist_window,
- clist->fg_gc,
- 0, diff,
- clist->clist_window,
- 0,
- 0,
- clist->clist_window_width,
- clist->clist_window_height - diff);
-
- area.x = 0;
- area.y = 0;
- area.width = clist->clist_window_width;
- area.height = diff;
+ area.x = 0;
+ area.y = clist->clist_window_height - diff;
+ area.width = clist->clist_window_width;
+ area.height = diff;
+ }
+ else
+ {
+ /* scroll up */
+ diff = -clist->voffset - value;
+ /* we have to re-draw the whole screen here... */
+ if (diff >= clist->clist_window_height)
+ {
+ clist->voffset = -value;
+ draw_rows (clist, NULL);
+ return;
}
- clist->voffset = -value;
if ((diff != 0) && (diff != clist->clist_window_height))
- check_exposures (clist);
+ gdk_window_copy_area (clist->clist_window, clist->fg_gc,
+ 0, diff, clist->clist_window, 0, 0,
+ clist->clist_window_width,
+ clist->clist_window_height - diff);
+
+ area.x = 0;
+ area.y = 0;
+ area.width = clist->clist_window_width;
+ area.height = diff;
}
+ clist->voffset = -value;
+ if ((diff != 0) && (diff != clist->clist_window_height))
+ check_exposures (clist);
+
draw_rows (clist, &area);
}
clist = GTK_CLIST (data);
- if (!GTK_WIDGET_DRAWABLE (clist) ||
- adjustment != gtk_range_get_adjustment (GTK_RANGE (clist->hscrollbar)))
+ if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->hadjustment)
return;
value = adjustment->value;
-
+
/* move the column buttons and resize windows */
for (i = 0; i < clist->columns; i++)
{
{
case GTK_DIR_LEFT:
case GTK_DIR_RIGHT:
- if (GTK_CLIST_CHILD_HAS_FOCUS (clist) &&
- (!focus_child || (focus_child && focus_child != clist->vscrollbar &&
- focus_child != clist->hscrollbar)))
+ if (GTK_CLIST_CHILD_HAS_FOCUS (clist))
{
if (title_focus (clist, direction))
return TRUE;
return TRUE;
case GTK_DIR_DOWN:
case GTK_DIR_TAB_FORWARD:
- if (GTK_CLIST_CHILD_HAS_FOCUS (clist) &&
- (!focus_child || (focus_child != clist->vscrollbar &&
- focus_child != clist->hscrollbar)))
+ if (GTK_CLIST_CHILD_HAS_FOCUS (clist))
{
gboolean tf = FALSE;
}
GTK_CLIST_SET_FLAG (clist, CLIST_CHILD_HAS_FOCUS);
-
- if ((!GTK_CLIST_CHILD_HAS_FOCUS (clist) || !focus_child ||
- (focus_child != clist->vscrollbar &&
- focus_child != clist->hscrollbar)) &&
- GTK_WIDGET_VISIBLE (clist->vscrollbar) &&
- GTK_WIDGET_CAN_FOCUS (clist->vscrollbar))
- {
- gtk_widget_grab_focus (clist->vscrollbar);
- return TRUE;
- }
-
- if ((!GTK_CLIST_CHILD_HAS_FOCUS (clist) || !focus_child ||
- focus_child != clist->hscrollbar) &&
- GTK_WIDGET_VISIBLE (clist->hscrollbar) &&
- GTK_WIDGET_CAN_FOCUS (clist->hscrollbar))
- {
- gtk_widget_grab_focus (clist->hscrollbar);
- return TRUE;
- }
break;
case GTK_DIR_UP:
case GTK_DIR_TAB_BACKWARD:
- if (!focus_child && GTK_CLIST_CHILD_HAS_FOCUS (clist) &&
- GTK_WIDGET_VISIBLE (clist->hscrollbar) &&
- GTK_WIDGET_CAN_FOCUS (clist->hscrollbar))
- {
- gtk_widget_grab_focus (clist->hscrollbar);
- return TRUE;
- }
-
- if ((!focus_child || focus_child == clist->hscrollbar) &&
- GTK_CLIST_CHILD_HAS_FOCUS (clist) &&
- GTK_WIDGET_VISIBLE (clist->vscrollbar) &&
- GTK_WIDGET_CAN_FOCUS (clist->vscrollbar))
- {
- gtk_widget_grab_focus (clist->vscrollbar);
- return TRUE;
- }
-
- if ((!focus_child || focus_child == clist->hscrollbar ||
- focus_child == clist->vscrollbar) &&
+ if (!focus_child &&
GTK_CLIST_CHILD_HAS_FOCUS (clist) && clist->rows)
{
if (clist->focus_row < 0)
{
case GTK_DIR_TAB_BACKWARD:
case GTK_DIR_UP:
- if (!focus_child || focus_child == clist->hscrollbar ||
- focus_child == clist->hscrollbar ||
- !GTK_CLIST_CHILD_HAS_FOCUS (clist))
+ if (!focus_child || !GTK_CLIST_CHILD_HAS_FOCUS (clist))
{
if (dir == GTK_DIR_UP)
i = COLUMN_FROM_XPIXEL (clist, 0);
break;
case GTK_DIR_LEFT:
d = -1;
- if (!focus_child || focus_child == clist->hscrollbar ||
- focus_child == clist->hscrollbar)
+ if (!focus_child)
{
i = clist->columns - 1;
focus_child = clist->column[i].button;
}
break;
case GTK_DIR_RIGHT:
- if (!focus_child || focus_child == clist->hscrollbar ||
- focus_child == clist->hscrollbar)
+ if (!focus_child)
{
i = 0;
focus_child = clist->column[i].button;
column = COLUMN_FROM_XPIXEL (clist, clist->clist_window_width);
if (column < 0)
return;
- if (COLUMN_LEFT_XPIXEL (clist, column) + clist->column[column].area.width
- + CELL_SPACING + COLUMN_INSET - 1 <= clist->clist_window_width &&
+ if (COLUMN_LEFT_XPIXEL (clist, column) +
+ clist->column[column].area.width +
+ CELL_SPACING + COLUMN_INSET - 1 <= clist->clist_window_width &&
column < clist->columns - 1)
column++;
break;
gint undo_anchor;
/* scrollbars */
- GtkWidget *vscrollbar;
- GtkWidget *hscrollbar;
- guint8 vscrollbar_policy;
- guint8 hscrollbar_policy;
+ GtkAdjustment *hadjustment;
+ GtkAdjustment *vadjustment;
/* xor GC for the vertical drag line */
GdkGC *xor_gc;
gchar *titles[]);
/* create a new GtkCList */
-GtkWidget *gtk_clist_new (gint columns);
-GtkWidget *gtk_clist_new_with_titles (gint columns,
+GtkWidget* gtk_clist_new (gint columns);
+GtkWidget* gtk_clist_new_with_titles (gint columns,
gchar *titles[]);
-/* deprecated function, use gtk_clist_set_shadow_type instead. */
-void gtk_clist_set_border (GtkCList *clist,
- GtkShadowType border);
+/* set adjustments of clist */
+void gtk_clist_set_hadjustment (GtkCList *clist,
+ GtkAdjustment *adjustment);
+void gtk_clist_set_vadjustment (GtkCList *clist,
+ GtkAdjustment *adjustment);
+
+/* get adjustments of clist */
+GtkAdjustment* gtk_clist_get_hadjustment (GtkCList *clist);
+GtkAdjustment* gtk_clist_get_vadjustment (GtkCList *clist);
/* set the border style of the clist */
void gtk_clist_set_shadow_type (GtkCList *clist,
void gtk_clist_set_selection_mode (GtkCList *clist,
GtkSelectionMode mode);
-/* set policy on the scrollbar, to either show them all the time
- * or show them only when they are needed, ie., when there is more
- * than one page of information
- */
-void gtk_clist_set_policy (GtkCList *clist,
- GtkPolicyType vscrollbar_policy,
- GtkPolicyType hscrollbar_policy);
-
/* freeze all visual updates of the list, and then thaw the list after
* you have made a number of changes and the updates wil occure in a
* more efficent mannor than if you made them on a unfrozen list
void gtk_clist_set_auto_sort (GtkCList *clist,
gboolean auto_sort);
+
+/* Deprecated methods */
+
+/* Use gtk_clist_set_shadow_type instead. */
+void gtk_clist_set_border (GtkCList *clist,
+ GtkShadowType border);
+
+/* Completely non-functional */
+void gtk_clist_set_policy (GtkCList *clist,
+ GtkPolicyType vscrollbar_policy,
+ GtkPolicyType hscrollbar_policy);
#ifdef __cplusplus
}
#endif /* __cplusplus */
GtkWidget *list_hbox;
GtkWidget *confirm_area;
GtkWidget *pulldown_hbox;
+ GtkWidget *scrolled_win;
+
char *dir_title [] = { "Directories", };
char *file_title [] = { "Files", };
gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row",
(GtkSignalFunc) gtk_file_selection_dir_button,
(gpointer) filesel);
- gtk_clist_set_policy (GTK_CLIST (filesel->dir_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list));
- gtk_container_border_width (GTK_CONTAINER (filesel->dir_list), 5);
- gtk_box_pack_start (GTK_BOX (list_hbox), filesel->dir_list, TRUE, TRUE, 0);
+
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->dir_list);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
gtk_widget_show (filesel->dir_list);
+ gtk_widget_show (scrolled_win);
/* The files clist */
filesel->file_list = gtk_clist_new_with_titles (1, file_title);
gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row",
(GtkSignalFunc) gtk_file_selection_file_button,
(gpointer) filesel);
- gtk_clist_set_policy (GTK_CLIST (filesel->file_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list));
- gtk_container_border_width (GTK_CONTAINER (filesel->file_list), 5);
- gtk_box_pack_start (GTK_BOX (list_hbox), filesel->file_list, TRUE, TRUE, 0);
+
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->file_list);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
gtk_widget_show (filesel->file_list);
+ gtk_widget_show (scrolled_win);
/* action area for packing buttons into. */
filesel->action_area = gtk_hbox_new (TRUE, 0);
#include "gtksignal.h"
#include "gtktable.h"
#include "gtkvbox.h"
+#include "gtkscrolledwindow.h"
/* The maximum number of fontnames requested with XListFonts(). */
#define MAX_FONTS 32767
static void
gtk_font_selection_init(GtkFontSelection *fontsel)
{
+ GtkWidget *scrolled_win;
GtkWidget *text_frame;
GtkWidget *text_box, *frame;
GtkWidget *table, *label, *hbox, *hbox2, *clist, *button, *vbox, *alignment;
fontsel->font_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->font_clist));
gtk_clist_set_column_width (GTK_CLIST(fontsel->font_clist), 0, 300);
- gtk_clist_set_policy(GTK_CLIST(fontsel->font_clist), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->font_clist, FONT_LIST_WIDTH,
FONT_LIST_HEIGHT);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->font_clist);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->font_clist);
- gtk_table_attach (GTK_TABLE (table), fontsel->font_clist, 0, 1, 2, 3,
+ gtk_widget_show(scrolled_win);
+
+ gtk_table_attach (GTK_TABLE (table), scrolled_win, 0, 1, 2, 3,
GTK_EXPAND | GTK_FILL,
GTK_EXPAND | GTK_FILL, 0, 0);
fontsel->font_style_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->font_style_clist));
gtk_clist_set_column_width (GTK_CLIST(fontsel->font_style_clist), 0, 300);
- gtk_clist_set_policy(GTK_CLIST(fontsel->font_style_clist), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->font_style_clist, FONT_STYLE_LIST_WIDTH, -1);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->font_style_clist);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->font_style_clist);
- gtk_table_attach (GTK_TABLE (table), fontsel->font_style_clist, 1, 2, 2, 3,
+ gtk_widget_show(scrolled_win);
+ gtk_table_attach (GTK_TABLE (table), scrolled_win, 1, 2, 2, 3,
GTK_EXPAND | GTK_FILL,
GTK_EXPAND | GTK_FILL, 0, 0);
fontsel->size_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->size_clist));
- gtk_clist_set_policy(GTK_CLIST(fontsel->size_clist), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->size_clist, FONT_SIZE_LIST_WIDTH, -1);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->size_clist);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->size_clist);
- gtk_table_attach (GTK_TABLE (table), fontsel->size_clist, 2, 3, 2, 3,
+ gtk_widget_show(scrolled_win);
+ gtk_table_attach (GTK_TABLE (table), scrolled_win, 2, 3, 2, 3,
GTK_FILL, GTK_FILL, 0, 0);
gtk_notebook_append_page (GTK_NOTEBOOK (fontsel),
fontsel->info_vbox, label);
- fontsel->info_clist = gtk_clist_new_with_titles(3, titles);
+ fontsel->info_clist = gtk_clist_new_with_titles (3, titles);
gtk_widget_set_usize (fontsel->info_clist, 390, 150);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 0, 130);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 1, 130);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 2, 130);
gtk_clist_column_titles_passive(GTK_CLIST(fontsel->info_clist));
- gtk_clist_set_policy(GTK_CLIST(fontsel->info_clist), GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->info_clist);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_widget_show(fontsel->info_clist);
- gtk_box_pack_start (GTK_BOX (fontsel->info_vbox), fontsel->info_clist,
+ gtk_widget_show(scrolled_win);
+ gtk_box_pack_start (GTK_BOX (fontsel->info_vbox), scrolled_win,
TRUE, TRUE, 0);
/* Insert the property names */
gtk_widget_set_usize (clist, 100, filter_heights[prop]);
gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_MULTIPLE);
gtk_clist_column_titles_hide(GTK_CLIST(clist));
- gtk_clist_set_policy(GTK_CLIST(clist), GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
gtk_widget_show(clist);
+ gtk_widget_show(scrolled_win);
/* For the bottom-right cell we add the 'Reset Filter' button. */
if (top == 2 && left == 2)
gtk_table_attach (GTK_TABLE (table), vbox, left, left + 1,
top + 1, top + 2, GTK_FILL, GTK_FILL, 0, 0);
- gtk_box_pack_start (GTK_BOX (vbox), clist, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
alignment = gtk_alignment_new(0.5, 0.0, 0.8, 0.0);
gtk_widget_show(alignment);
fontsel);
}
else
- gtk_table_attach (GTK_TABLE (table), clist,
+ gtk_table_attach (GTK_TABLE (table), scrolled_win,
left, left + 1, top + 1, top + 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
GtkWidget *viewport;
case ARG_VIEWPORT:
- g_return_if_fail (scrolled_window->viewport == NULL);
viewport = GTK_VALUE_POINTER (*arg);
- if (!viewport)
- viewport = gtk_viewport_new (NULL, NULL);
- scrolled_window->viewport = viewport;
- gtk_scrolled_window_construct (scrolled_window, NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), viewport);
case ARG_HSCROLLBAR_POLICY:
gtk_scrolled_window_set_policy (scrolled_window,
GTK_VALUE_ENUM (*arg),
scrolled_window->vscrollbar = NULL;
scrolled_window->hscrollbar_policy = GTK_POLICY_ALWAYS;
scrolled_window->vscrollbar_policy = GTK_POLICY_ALWAYS;
+ scrolled_window->autogenerated_viewport = FALSE;
}
GtkWidget*
scrolled_window = gtk_type_new (GTK_TYPE_SCROLLED_WINDOW);
gtk_scrolled_window_construct (GTK_SCROLLED_WINDOW (scrolled_window), hadjustment, vadjustment);
-
+
return scrolled_window;
}
g_return_if_fail (scrolled_window->hscrollbar == NULL);
g_return_if_fail (scrolled_window->vscrollbar == NULL);
- if (scrolled_window->viewport)
- g_return_if_fail (hadjustment == NULL && vadjustment == NULL);
- else
- scrolled_window->viewport = gtk_viewport_new (hadjustment, vadjustment);
+ scrolled_window->hscrollbar = gtk_hscrollbar_new (hadjustment);
+ scrolled_window->vscrollbar = gtk_vscrollbar_new (vadjustment);
- hadjustment = gtk_viewport_get_hadjustment (GTK_VIEWPORT (scrolled_window->viewport));
- vadjustment = gtk_viewport_get_vadjustment (GTK_VIEWPORT (scrolled_window->viewport));
- gtk_container_set_resize_mode (GTK_CONTAINER (scrolled_window->viewport), GTK_RESIZE_PARENT);
+ hadjustment =
+ gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar));
+ vadjustment =
+ gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar));
gtk_signal_connect (GTK_OBJECT (hadjustment), "changed",
(GtkSignalFunc) gtk_scrolled_window_adjustment_changed,
(GtkSignalFunc) gtk_scrolled_window_adjustment_changed,
(gpointer) scrolled_window);
- scrolled_window->hscrollbar = gtk_hscrollbar_new (hadjustment);
- scrolled_window->vscrollbar = gtk_vscrollbar_new (vadjustment);
-
- gtk_widget_set_parent (scrolled_window->viewport, GTK_WIDGET (scrolled_window));
gtk_widget_set_parent (scrolled_window->hscrollbar, GTK_WIDGET (scrolled_window));
gtk_widget_set_parent (scrolled_window->vscrollbar, GTK_WIDGET (scrolled_window));
- gtk_widget_show (scrolled_window->viewport);
gtk_widget_show (scrolled_window->hscrollbar);
gtk_widget_show (scrolled_window->vscrollbar);
- gtk_widget_ref (scrolled_window->viewport);
gtk_widget_ref (scrolled_window->hscrollbar);
gtk_widget_ref (scrolled_window->vscrollbar);
}
GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
scrolled_window = GTK_SCROLLED_WINDOW (widget);
- if (GTK_WIDGET_VISIBLE (scrolled_window->viewport) &&
+ if (scrolled_window->viewport &&
+ GTK_WIDGET_VISIBLE (scrolled_window->viewport) &&
!GTK_WIDGET_MAPPED (scrolled_window->viewport))
gtk_widget_map (scrolled_window->viewport);
GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
scrolled_window = GTK_SCROLLED_WINDOW (widget);
- if (GTK_WIDGET_MAPPED (scrolled_window->viewport))
+ if (scrolled_window->viewport &&
+ GTK_WIDGET_MAPPED (scrolled_window->viewport))
gtk_widget_unmap (scrolled_window->viewport);
if (GTK_WIDGET_MAPPED (scrolled_window->hscrollbar))
{
scrolled_window = GTK_SCROLLED_WINDOW (widget);
- if (gtk_widget_intersect (scrolled_window->viewport, area, &child_area))
+ if (scrolled_window->viewport &&
+ gtk_widget_intersect (scrolled_window->viewport, area, &child_area))
gtk_widget_draw (scrolled_window->viewport, &child_area);
if (gtk_widget_intersect (scrolled_window->hscrollbar, area, &child_area))
requisition->width = 0;
requisition->height = 0;
- if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
+ if (scrolled_window->viewport &&
+ GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
gtk_widget_size_request (scrolled_window->viewport, &scrolled_window->viewport->requisition);
if (scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
scrolled_window->vscrollbar_visible = TRUE;
- if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
+ if (scrolled_window->viewport &&
+ GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
count = 0;
GtkWidget *widget)
{
GtkScrolledWindow *scrolled_window;
+ GtkArgInfo *info_hadj;
+ GtkArgInfo *info_vadj;
+ GtkArg arg;
+ gchar *error;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (container));
g_return_if_fail (widget != NULL);
scrolled_window = GTK_SCROLLED_WINDOW (container);
- gtk_container_add (GTK_CONTAINER (scrolled_window->viewport), widget);
+
+ if (scrolled_window->viewport)
+ gtk_container_remove (container, scrolled_window->viewport);
+
+ error = gtk_object_arg_get_info (GTK_OBJECT_TYPE (widget),
+ "hadjustment", &info_hadj);
+ if (!error)
+ {
+ error = gtk_object_arg_get_info (GTK_OBJECT_TYPE (widget),
+ "vadjustment", &info_vadj);
+
+ if (!error)
+ {
+ gtk_object_set (GTK_OBJECT (widget),
+ "hadjustment",
+ gtk_scrolled_window_get_hadjustment
+ (scrolled_window),
+ "vadjustment",
+ gtk_scrolled_window_get_vadjustment
+ (scrolled_window),
+ NULL);
+ scrolled_window->viewport = widget;
+ gtk_widget_set_parent (widget, GTK_WIDGET (scrolled_window));
+ gtk_widget_ref (widget);
+ scrolled_window->autogenerated_viewport = FALSE;
+ }
+ }
+
+ if (error)
+ {
+ g_free (error);
+
+ scrolled_window->viewport = gtk_viewport_new
+ (gtk_scrolled_window_get_hadjustment (scrolled_window),
+ gtk_scrolled_window_get_vadjustment (scrolled_window));
+ gtk_widget_set_parent (scrolled_window->viewport,
+ GTK_WIDGET (scrolled_window));
+ gtk_widget_ref (scrolled_window->viewport);
+ gtk_widget_show (scrolled_window->viewport);
+ scrolled_window->autogenerated_viewport = FALSE;
+
+ gtk_container_add (GTK_CONTAINER (scrolled_window->viewport), widget);
+
+ widget = scrolled_window->viewport;
+ }
+
+ if (GTK_WIDGET_VISIBLE (scrolled_window))
+ {
+ if (GTK_WIDGET_REALIZED (scrolled_window) &&
+ !GTK_WIDGET_REALIZED (widget))
+ gtk_widget_realize (widget);
+
+ if (GTK_WIDGET_MAPPED (scrolled_window) &&
+ !GTK_WIDGET_MAPPED (widget))
+ gtk_widget_map (widget);
+ }
+
+ if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (scrolled_window))
+ gtk_widget_queue_resize (widget);
}
static void
g_return_if_fail (widget != NULL);
scrolled_window = GTK_SCROLLED_WINDOW (container);
-
if (scrolled_window->viewport == widget ||
scrolled_window->hscrollbar == widget ||
scrolled_window->vscrollbar == widget)
{
/* this happens during destroy */
+
+ if (scrolled_window->viewport == widget)
+ scrolled_window->autogenerated_viewport = FALSE;
+
gtk_widget_unparent (widget);
}
- else
+ else if (scrolled_window->autogenerated_viewport)
gtk_container_remove (GTK_CONTAINER (scrolled_window->viewport), widget);
}
scrolled_window = GTK_SCROLLED_WINDOW (container);
+ if (scrolled_window->viewport)
+ (* callback) (scrolled_window->viewport, callback_data);
if (include_internals)
{
- if (scrolled_window->viewport)
- (* callback) (scrolled_window->viewport, callback_data);
-
(* callback) (scrolled_window->vscrollbar, callback_data);
(* callback) (scrolled_window->hscrollbar, callback_data);
}
- else if (scrolled_window->viewport)
- gtk_container_foreach (GTK_CONTAINER (scrolled_window->viewport), callback, callback_data);
}
static void
gpointer data)
{
GtkScrolledWindow *scrolled_win;
+ gboolean visible;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
{
if (scrolled_win->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
+ visible = scrolled_win->hscrollbar_visible;
scrolled_win->hscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
+ if (scrolled_win->hscrollbar_visible != visible)
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_win));
}
}
else if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->vscrollbar)))
{
if (scrolled_win->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
+ visible = scrolled_win->vscrollbar_visible;
scrolled_win->vscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
+ if (scrolled_win->vscrollbar_visible != visible)
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_win));
}
}
else
GtkWidget *hscrollbar;
GtkWidget *vscrollbar;
- guint8 hscrollbar_policy;
- guint8 vscrollbar_policy;
- gint hscrollbar_visible : 1;
- gint vscrollbar_visible : 1;
+ guint hscrollbar_policy : 2;
+ guint vscrollbar_policy : 2;
+ guint hscrollbar_visible : 1;
+ guint vscrollbar_visible : 1;
+ guint autogenerated_viewport : 1;
};
struct _GtkScrolledWindowClass
GtkAdjustment *adjustment;
case ARG_HADJUSTMENT:
- g_return_if_fail (viewport->hadjustment == NULL);
adjustment = GTK_VALUE_POINTER (*arg);
- if (!adjustment)
- adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_viewport_set_hadjustment (viewport, adjustment);
break;
case ARG_VADJUSTMENT:
- g_return_if_fail (viewport->vadjustment == NULL);
adjustment = GTK_VALUE_POINTER (*arg);
- if (!adjustment)
- adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_viewport_set_vadjustment (viewport, adjustment);
break;
case ARG_SHADOW_TYPE:
viewport = gtk_type_new (gtk_viewport_get_type ());
- if (!hadjustment)
- hadjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
-
- if (!vadjustment)
- vadjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
-
gtk_viewport_set_hadjustment (viewport, hadjustment);
gtk_viewport_set_vadjustment (viewport, vadjustment);
{
g_return_if_fail (viewport != NULL);
g_return_if_fail (GTK_IS_VIEWPORT (viewport));
- g_return_if_fail (adjustment != NULL);
+ if (adjustment)
+ g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
- if (viewport->hadjustment != adjustment)
+ if (viewport->hadjustment && viewport->hadjustment != adjustment)
{
- if (viewport->hadjustment)
- {
- gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->hadjustment),
- (gpointer) viewport);
- gtk_object_unref (GTK_OBJECT (viewport->hadjustment));
- }
+ gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->hadjustment),
+ (gpointer) viewport);
+ gtk_object_unref (GTK_OBJECT (viewport->hadjustment));
+ }
+ if (!adjustment)
+ adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0));
+
+ if (viewport->hadjustment != adjustment)
+ {
viewport->hadjustment = adjustment;
gtk_object_ref (GTK_OBJECT (viewport->hadjustment));
gtk_object_sink (GTK_OBJECT (viewport->hadjustment));
{
g_return_if_fail (viewport != NULL);
g_return_if_fail (GTK_IS_VIEWPORT (viewport));
- g_return_if_fail (adjustment != NULL);
+ if (adjustment)
+ g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
- if (viewport->vadjustment != adjustment)
+ if (viewport->vadjustment && viewport->vadjustment != adjustment)
{
- if (viewport->vadjustment)
- {
- gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->vadjustment),
- (gpointer) viewport);
- gtk_object_unref (GTK_OBJECT (viewport->vadjustment));
- }
+ gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->vadjustment),
+ (gpointer) viewport);
+ gtk_object_unref (GTK_OBJECT (viewport->vadjustment));
+ }
+
+ if (!adjustment)
+ adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0));
+ if (viewport->vadjustment != adjustment)
+ {
viewport->vadjustment = adjustment;
gtk_object_ref (GTK_OBJECT (viewport->vadjustment));
gtk_object_sink (GTK_OBJECT (viewport->vadjustment));
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
- GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
gtk_widget_set_usize (scrolled_win, -1, 300);
GtkWidget *clist;
GtkWidget *button;
GtkWidget *separator;
+ GtkWidget *scrolled_win;
GtkWidget *undo_button;
GtkWidget *label;
/* create GtkCList here so we have a pointer to throw at the
* button callbacks -- more is done with it later */
clist = gtk_clist_new_with_titles (TESTGTK_CLIST_COLUMNS, titles);
+ gtk_widget_show (clist);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
/*clist = gtk_clist_new (TESTGTK_CLIST_COLUMNS);*/
gtk_signal_connect (GTK_OBJECT (clist), "click_column",
gtk_clist_set_column_min_width (GTK_CLIST (clist), 3, 50);
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
GTK_JUSTIFY_RIGHT);
}
}
- gtk_container_border_width (GTK_CONTAINER (clist), 5);
- gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
static GtkWidget *export_window = NULL;
static GtkCTree *export_ctree;
GtkWidget *vbox;
+ GtkWidget *scrolled_win;
GtkWidget *button;
GtkWidget *sep;
GNode *gnode;
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
- TRUE, TRUE, 0);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win),
+ GTK_WIDGET (export_ctree));
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
static GtkWidget *window = NULL;
GtkTooltips *tooltips;
GtkCTree *ctree;
+ GtkWidget *scrolled_win;
GtkWidget *vbox;
GtkWidget *bbox;
GtkWidget *mbox;
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
GTK_SIGNAL_FUNC (after_press), NULL);
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), GTK_WIDGET (ctree));
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_min_width (GTK_CLIST (ctree), 0, 50);
gtk_clist_set_column_auto_resize (GTK_CLIST (ctree), 0, TRUE);
gtk_clist_set_column_width (GTK_CLIST (ctree), 1, 200);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
box2 = gtk_vbox_new (FALSE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
- GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
gtk_widget_set_usize (scrolled_win, -1, 300);
GtkWidget *clist;
GtkWidget *button;
GtkWidget *separator;
+ GtkWidget *scrolled_win;
GtkWidget *undo_button;
GtkWidget *label;
/* create GtkCList here so we have a pointer to throw at the
* button callbacks -- more is done with it later */
clist = gtk_clist_new_with_titles (TESTGTK_CLIST_COLUMNS, titles);
+ gtk_widget_show (clist);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
/*clist = gtk_clist_new (TESTGTK_CLIST_COLUMNS);*/
gtk_signal_connect (GTK_OBJECT (clist), "click_column",
gtk_clist_set_column_min_width (GTK_CLIST (clist), 3, 50);
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
GTK_JUSTIFY_RIGHT);
}
}
- gtk_container_border_width (GTK_CONTAINER (clist), 5);
- gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
static GtkWidget *export_window = NULL;
static GtkCTree *export_ctree;
GtkWidget *vbox;
+ GtkWidget *scrolled_win;
GtkWidget *button;
GtkWidget *sep;
GNode *gnode;
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
- TRUE, TRUE, 0);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win),
+ GTK_WIDGET (export_ctree));
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
static GtkWidget *window = NULL;
GtkTooltips *tooltips;
GtkCTree *ctree;
+ GtkWidget *scrolled_win;
GtkWidget *vbox;
GtkWidget *bbox;
GtkWidget *mbox;
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
GTK_SIGNAL_FUNC (after_press), NULL);
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
+ scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_win), GTK_WIDGET (ctree));
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+ gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
+ gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
- gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
- GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_min_width (GTK_CLIST (ctree), 0, 50);
gtk_clist_set_column_auto_resize (GTK_CLIST (ctree), 0, TRUE);
gtk_clist_set_column_width (GTK_CLIST (ctree), 1, 200);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
box2 = gtk_vbox_new (FALSE, 0);